As computer server architectures have advanced, more specific functionality have been added to meet customer needs and to increase up time. For example, older computer server architectures might employ a single processor that is use to provide substantially all server functionality via execution of firmware and software instructions on the processor, as well as through specific hardware-level logic built into the processor and/or platform. More recently, the single point of service has been discarded for a more distributed service scheme, whereby multiple processors are employed to perform targeted functions.
For example, modern servers may employ an “out-of-band” management controller that performs separate functions than the servers' primary processor (or processors for multi-processor platforms). Typically, an out-of-band management controller comprises an independent processor, such as a base management controller or service processor, connected to various hardware components of a server platform to monitor the functionality of those hardware components. For instance, a service processor may be configured to have its own independent link to a network with an independent Internet protocol (“IP”) address to allow an administrator on a remote console to monitor the functionality of the server. As used herein, these processors are collectively termed “co-processors.”
With reference to FIG. 1, a server 100 having a conventional service processor configuration known in the art is depicted. The illustrated embodiment of server 100 includes a service processor 102, a main processor (CPU) 104, a communication interface 106, a data storage unit 108, a service processor firmware storage device 110, and a platform firmware storage device 112. Main processor 104 is communicatively coupled to various platform components via one or more buses that are collectively illustrated as a system bus 114. Typically, service processor 102 is coupled to the same and/or different platform components via an independent bus and/or direct channels, also called service channels; this bus or buses is depicted in FIG. 1 as a management bus 116. In one embodiment, service processor 102 is communicatively-coupled to communication interface 106 via a separate channel 118. Optionally, the coupling may be implemented via management bus 116.
Generally, service processor 102 may be linked in communication with a network 120 via either communication interface 106 or a dedicated network interface. In the illustrated embodiment, communication interface 106 provides two ports with respective IP addresses of IP1 and IP2, whereby one IP address may be used by main processor 104, while the other may be used by service processor 102
An administrator working on a remote console 122 coupled to network 120 can monitor the functionality of main processor 104, data storage unit 108, or other entities (not shown) via interaction with service processor 102. The functions of service processor 102 generally include monitoring one or more characteristics or operations of main processor 104 (e.g., monitoring the temperature of processor 104), data storage unit 108, and other hardware components (not shown), recording hardware errors, performing manual tasks initiated by the administrator (such as resetting main processor 104), recovering main processor 104 after an error, performing manual input/output data transfers, and the like.
The foregoing service processor functions are enabled via execution of firmware stored in service processor firmware storage device 110. In particular, interaction with the various hardware components is provided via one or more corresponding firmware drivers. At the same time, separate firmware drivers stored in platform firmware storage device 112 are employed by main processor 104 to access the same hardware components. Since main processor 104 and service processor 102 will generally employ different instructions sets, the firmware drivers for the respective processors are often developed by independent groups.